from models.driver_model import Driver
from datetime import date, datetime, time
from typing import Optional
from sqlmodel import Field, Relationship, SQLModel
from core.commons import OrderInitalStatus


class OrderInitialBase(SQLModel):
    订单编码: str = Field(default=None,description="订单编码")
    一级服务类型名称: Optional[str] = Field(default=None)
    二级服务类型名称: Optional[str] = Field(default=None)
    订单状态: OrderInitalStatus = Field(default=OrderInitalStatus.未处理)
    取消时的发车状态: Optional[str] = Field(default=None)
    客户姓名: Optional[str] = Field(default=None)
    预约日期: Optional[date] = Field(default=None)
    预约时间: Optional[time] = Field(default=None)
    司机姓名: Optional[str] = Field(default=None)
    司机核对状态: Optional[str] = Field(default=None)
    司机服务车牌: Optional[str] = Field(default=None)
    司机服务车型: Optional[str] = Field(default=None)
    司机车辆颜色: Optional[str] = Field(default=None)
    司机车辆等级: Optional[str] = Field(default=None)
    供应商简称: Optional[str] = Field(default=None)
    省_服务起始点: Optional[str] = Field(default=None)
    市_服务起始点: Optional[str] = Field(default=None)
    区_服务起始点: Optional[str] = Field(default=None)
    服务起始地址: Optional[str] = Field(default=None)
    省_服务目的地: Optional[str] = Field(default=None)
    市_服务目的地: Optional[str] = Field(default=None)
    区_服务目的地: Optional[str] = Field(default=None)
    服务目的地地址: Optional[str] = Field(default=None)
    预估里程_预估最短里程: Optional[str] = Field(default=None)
    实际行驶里程: Optional[str] = Field(default=None)
    发车日期: Optional[date] = Field(default=None)
    发车时间: Optional[time] = Field(default=None)
    到达服务起始点日期: Optional[date] = Field(default=None)
    到达服务起始点时间: Optional[time] = Field(default=None)
    开始服务日期: Optional[date] = Field(default=None)
    开始服务时间: Optional[time] = Field(default=None)
    订单取消日期: Optional[date] = Field(default=None)
    订单取消时间: Optional[time] = Field(default=None)
    服务完成日期: Optional[date] = Field(default=None)
    服务完成时间: Optional[time] = Field(default=None)
    签单: Optional[str] = Field(default=None)
    机场名称: Optional[str] = Field(default=None)
    高铁站名称: Optional[str] = Field(default=None)
    节点图片数量: Optional[str] = Field(default=None)
    实际里程: Optional[str] = Field(default=None)
    派单途径: Optional[str] = Field(default=None)
    客户标签名称: Optional[str] = Field(default=None)
    服务注意事项: Optional[str] = Field(default=None)
    司机星级: Optional[str] = Field(default=None)
    投诉率: Optional[float] = Field(default=None)
    投诉单量: Optional[int] = Field(default=None)
    累计服务单量: Optional[int] = Field(default=None)
    北京时间: Optional[datetime] = Field(default=None)
    车牌号:Optional[str] = Field(default=None)
    CIP服务方式:Optional[str] = Field(default=None)
    购买早餐:Optional[str] = Field(default=None)
    鲜花系列:Optional[str] = Field(default=None)
    服务备注:Optional[str] = Field(default=None)
    航班号_高铁车次号:Optional[str] = Field(default=None)
    车架号_VIN码:Optional[str] = Field(default=None)
    服务方式:Optional[str] = Field(default=None)
    行李数量:Optional[int] = Field(default=None)
    乘客数量:Optional[int] = Field(default=None)
    是否中途停靠:Optional[str] = Field(default=None)
    中途停靠地址:Optional[str] = Field(default=None)
    特殊要求:Optional[str] = Field(default=None)
    宝宝椅数量:Optional[int] = Field(default=None)

class OrderInitial(OrderInitialBase,table=True):
    __tablename__ = "order_initial"
    id:Optional[int] = Field(default=None,primary_key=True,title="自增主键id")
    driver_id:Optional[int] = Field(default=None,foreign_key="driver.id")
    driver:Optional[Driver] = Relationship(back_populates="order_initial_list")